home *** CD-ROM | disk | FTP | other *** search
- KERMIT UCSD is a version of KERMIT which runs under the UCSD psystem. Due to
- the limitations of UCSD Pascal, there are several routines which must be
- written in assembly language. This version was implemented on a Terak 8510A,
- which is a PDP 11/2. Detailed below are the functions of the routines, as
- well as information needed for linking.
-
- The command parser is a separate compilation unit, which has the filename
- PARSER.
-
- KERMIT uses assembly routines for host computer and keyboard
- receiving. The file RCVHANDLR.TEXT contains all the routines for handling
- the characters received from the host, KBDHANDLR.TEXT contains all the
- routines for handling characters received from the keyboard, and SENDB contains
- the routine for sending a continuous break to an IBM mainframe.
-
- To build KERMIT, first assemble PARSER, RCVHANDLR, KBDHANDLR & SENDB.
- PARSER must then be linked into a library called PARSELIB. Then compile
- KERMIT then finally enter the following linker sequence:
-
- Host file? KERMIT
- Lib file? PARSELIB
- Lib file? SENDB
- Lib file? RCVHANDLR
- Lib file? KBDHANDLR
- Lib file? <cr>
- Map name? <cr>
- Output file? KERMIT.CODE
-
- The order in which the library files are typed in makes a difference (for some
- unknown reason), as does the '.CODE' extension on the output file name.
-
- The following declarations are needed for KBDHANDLR and RCVHANDLR
-
- CONST RCVQSIZE = <maximum number of queued characters>
-
- TYPE QUEUE = RECORD (* These are order-dependent !!! *)
- QSIZE: INTEGER
- INP: INTEGER
- OUTP: INTEGER
- MAXCHAR: INTEGER
- DATA: PACKED ARRAY [0..RCVQSIZE] OF CHAR
- END
- VAR RCVQ: QUEUE (* must be declared in outermost block *)
-
- The routines RCVINIT and KBDINIT must be called at the beginning of the
- program in order to set up interrupt vectors and handlers. They are
- declared as
-
- PROCEDURE RCVINIT (VAR Q: QUEUE; SIZE:INTEGER) EXTERNAL
- PROCEDURE KBDINIT (VAR Q: QUEUE; SIZE:INTEGER) EXTERNAL
-
- and should be called appropriately. RCVINIT takes care of setting other
- system interrupt priorities so that keyboard and remote input override them.
- KBDINIT only deals with the keyboard interupts, since others will be taken
- care of by RCVINIT.
-
- The routines RCVFINIT and KBDFINIT should be Mcalled at the end of the
- program in order to restore interrupt vectors, handlers and priorities. They
- are declared as
-
- PROCEDURE RCVFINIT; EXTERNAL;
- PROCEDURE KBDFINIT; EXTERNAL;
-
- and are called with no parameters.
-
- The queue handlers run continuously as interrupt-driven tasks at high
- priority. As characters come in, they advance the queue INP pointer and
- keep track of the maximum number of characters in the queues in the MAXCHAR
- variables. Queue overflow is indicated by MAXCHAR > QSIZE.
-
- To send a break the routine SENDBRK is used, which sends a continuous
- break and should be declared as
-
- PROCEDURE SENDBRK; EXTERNAL;
-
- KERMIT-UCSD is a version of KERMIT written primarily in UCSD Pascal
- Version II.0. There are four assembly language routines which manage special
- keyboard and remote input interrupt handlers, and one more which sends a
- continuous break signal. The program was developed on a TERAK 8510A
- microcomputer, which is a PDP-11/2. With the rewriting of the above five
- routines, plus two interrupt handlers, the program should be easily movable
- to any UCSD psystem.
-
- KERMIT-UCSD has the following limitations:
-
- 1) No wild card designations of file names.
- 2) No eight-bit file quoting.
- 3) No character repeat counts.
- 4) No '?' and <esc> at the end of a command line.
- 5) No server communications.
- 6) Sending and receiving cannot be done for anything but .TEXT files
- (which contain a two-block header and space compression codes).
- 7) Instead of using a clock to time out when waiting for a packet,
- KERMIT-UCSD has a limit on the number of times it will look for
- a response before giving up.
-
- The commands recognized by KERMIT-UCSD are listed below.
-
- CONNECT To make a "virtual terminal" connection to a remote
- system. To break the connection and "escape" back to the
- micro, type the escape sequence (CTRL-] C, that is Control
- rightbracket followed immediately by the letter C.)
-
- EXIT To return to main psystem command level.
-
- HELP To get a list of KERMIT commands. HELP can be followed by
- any command, in which case the help will refer only to that
- command.
-
- RECEIVE To accept a file from the remote system.
-
- SEND To send a file or group of files to the remote system.
- Takes a filename as a parameter.
-
- SET To establish system-dependent parameters. The SET options
- are as follows:
-
- DEBUG To set debug mode ON or OFF (default is OFF).
-
- END-OF-LINE To change the character used at the end of
- packets to something other than the default
- of CR. It must be a digit between 0 and 31.
-
- ESCAPE To change the escape sequence that lets you
- return to the PC Kermit from the remote host.
- The default is CTRL-] c.
-
- FILE-WARNING ON/OFF, default is OFF. If ON, Kermit will
- rename an incoming file so as not to
- write over a file that currently exists with the
- same name.
-
- IBM ON/OFF, default is OFF. This flaMg should be
- ON only when transfering files between the PC
- and an IBM VM/CMS system. It also causes the
- parity to be set appropriately and activates
- local echoing.
-
- LOCAL-ECHO ON/OFF, default is OFF. This sets the duplex.
- It should be ON when using the IBM and OFF for
- the DEC-20.
-
- PARITY EVEN, ODD, MARK, SPACE, or NONE. NONE is the
- default but if the IBM flag is set, parity is
- set to MARK. This flag selects the parity for
- outgoing and incoming characters during CONNECT
- and file transfer to match the requirements of
-
- SHOW To see the values of parameters that can be modified
- via the SET command. SHOW ALL shows all parameters; SHOW
- followed by a parameter listed under SET will show the value
- of only that parameter.
-
- This version of KERMIT does not have a SET BAUD command because the baud rate
- is set by hardware on the TERAK.
-